The mobile Internet protocol version 6 (MIPv6) allows a mobile device to maintain a continuous connection with another device that supports Internet protocol version 6. Two separate modes of communication are supported with MIPv6: bi-directional tunneling (BT) mode and route optimization (RO) mode. RO mode dynamically updates the routing of traffic between a mobile device or “mobile node” (MN) and a node that is communicating or corresponding with the mobile node, i.e., a corresponding node (CN).
The BT mode tunnels traffic between the mobile node and the corresponding node through a home agent (HA) device or home agent node on a home network. The home agent node is updated with a location of the mobile node, when the mobile node connects to a new network. The home agent node relays data traffic between the mobile node and the corresponding node.
Both the home and visited or “foreign” networks that the mobile node connects to run IPv6 and can be equipped with network address translation (NAT64) nodes and domain name system 64 (DNS64) servers to enable IPv6 nodes on the respective networks to communicate with the IPv4 nodes outside the IPv6 network by treating outside IPv4 nodes as virtual IPv6-enabled nodes. Under this scheme, nodes in the home or foreign networks will see corresponding nodes that are IPv4 nodes as being IPv6 nodes and will send data packets to a virtual IPv6 destination address assigned to each corresponding node. However, these packets will be captured by the local NAT64 node on each respective network, which will translate the outbound packets into IPv4 packets before being forwarded to the IPv4 destination address of the corresponding node.
Conversely, when communicating with a mobile node or other IPv6 node, the corresponding node operates as if it is connected to an IPv4 node. The corresponding node will send data packets to the mobile node using an IPv4 destination address that has been mapped to the mobile node by the NAT64 of the home network. These packets are intercepted by the NAT64 node located in the home network of the mobile node and translated into IPv6 packets that are forwarded to the mobile node by the home agent node.
Similarly, a multi-homed node is a node that is connected to a plurality of networks and can communicate with a corresponding node over any of the plurality of networks. A connection to a corresponding node can be initiated across any one of the plurality of networks at which point the DNS64 and NAT64 provide a virtual IPv6 address for the IPv4 corresponding node. However, this virtual IPv6 address is valid only for the network in which the DNS64 sits. If the connection to that network becomes unusable or undesirable then a connection with the corresponding node is lost even though the multi-homed node may be connected to the corresponding node or could connect to the corresponding node over another network.
In NAT64/DNS64 technology, each network equipped with DNS64 technology will synthesize locally a different AAAA record (i.e., the DNS record which refers to an IPv6 address) for a particular IPv4 address. Such “fake” or “virtual” IPv6 addresses carry a prefix that is recognizable only by the NAT64 node tied to the DNS64 node that issued it. This prefix identifies the associated data traffic as being directed to an IPv4 node which requires translation. Another NAT64 located in a different network and attached to a different DNS64 is not able to translate the IPv6 addresses of these packets, because it is unaware of the prefix that has been used by the other network and thus is unable to distinguish the virtual IPv6 address with that prefix from an actual IPv6 address.
When a mobile or multi-homed node tries to connect to an IPv4 corresponding node from a network, the network's DNS64 node will synthesize an AAAA record that would carry a virtual IPv6 address known only by that NAT64 node located in this network. However, in the MIPv6 protocol, using the BT mode requires tunneling the data packets to the home network (i.e., the home agent (HA) node, which in turn forwards the data traffic to its final destination). In such cases, data packets tunneled by the mobile node to its home agent node can't be forwarded to the home NAT64 node, because the prefix used to generate the IPv6 address for the corresponding node is unknown to both the home agent node and the home NAT64 node. As a result, connectivity between the corresponding node and mobile node is lost.
Similarly, if a multi-homed node has a connection with a corresponding node through one network, then the virtual IPv6 address for the corresponding node uses a prefix specific to that network. If the connection to that network fails, the multi-homed node cannot utilize other network connections to continue communication with the corresponding node, because the virtual IPv6 address known to the multi-homed node uses a prefix that is unknown to the NAT64s of the other networks and therefore they cannot translate and forward data traffic to the corresponding node.